package com.tmt.im.manager.controller.vo;

import com.tmt.im.common.enums.SystemNotifyType;
import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.annotation.Nullable;
import jakarta.validation.constraints.NotNull;
import lombok.Getter;
import lombok.Setter;

import java.io.Serial;
import java.io.Serializable;

/**
 * @Description TODO
 * @Author wuyi
 * @Date 2024/9/29 18:55
 * @Version 1.0
 **/
@Getter
@Setter
@Tag(name = "SystemNotifyVo", description = "系统通知对象")
public class SystemNotifyVo implements Serializable {
    @Serial
    private static final long serialVersionUID = 789724571915338345L;

    @Schema(description = "系统通知ID, 创建系统通知时忽略本字段，更新系统通知时本字段不能为null")
    @Nullable
    private Long id;

    @Schema(description = "系统通知标题")
    @NotNull(message = "标题不能为空")
    private String title;

    @Schema(description = "系统通知内容")
    @NotNull(message = "内容不能为空")
    private String content;

    @Schema(description = "系统通知类型")
    @NotNull(message = "类型不能为空，有效值包括：COMMON(普通公告)、EMERGENCY(紧急通知)")
    private SystemNotifyType type;

}
